package com.qf.mpswaggershiro.vo;


import com.qf.mpswaggershiro.product.entity.IndexImg;
import com.qf.mpswaggershiro.utils.Constants;
import lombok.Data;

import java.util.HashMap;
import java.util.List;


@Data
public class Vo extends HashMap {



    // 代表成功的静态方法
    public static Vo ok(){
        Vo vo = new Vo();
        // code 默认 为 10000 ,代表成功
         vo.put("code", Constants.SUCCESS_CODE);
       vo.put("msg","success");

       return vo;
    }
    public static Vo ok(Object data){
        Vo vo = new Vo();
        // code 默认 为 10000 ,代表成功
        vo.put("code", Constants.SUCCESS_CODE);
        vo.put("msg","success");
        vo.put("data",data);

        return vo;
    }

    // 重载的 ok 方法，提供一个成功的消息字符串
    public static Vo ok(String msg){
        final Vo vo = new Vo();
        vo.put("msg",msg);

        return vo;
    }

    /**
     * 重载ok
     * @param code 成功码
     * @param msg 成功消息
     * @return
     */
    public static Vo ok(Integer code,String msg){
        final Vo vo = new Vo();
        vo.put("code",code);
        vo.put("msg",msg);
        return vo;
    }


    /**
     * 失败消息封装
     * @return
     */
    public static Vo error(){
        final Vo vo = new Vo();
        vo.put("code",500);
        vo.put("msg","服务器端有问题");
        return vo;
    }

    /**
     * 重载error
     * @param msg 错误消息
     * @return
     */
    public static Vo error(String msg){
        final Vo vo = new Vo();
        vo.put("code",500);
        vo.put("msg",msg);
        return vo;
    }


    /**
     * 重载 error
     * @param code 错误码
     * @param msg  错误消息
     * @return
     */
    public static Vo error(Integer code,String msg){
        final Vo vo = new Vo();
        vo.put("code",code);
        vo.put("msg",msg);
        return vo;
    }
    public static Vo ok(Integer code){
        final Vo vo = new Vo();
        vo.put("code",code);

        return vo;
    }

    /**
     * 轮播图
     * @param list
     * @param i
     * @param msg
     * @return
     */
    public static Vo arousel(List<IndexImg> list, int i, String msg) {
        final Vo vo = new Vo();
        vo.put("code",i);
        vo.put("msg",msg);
        vo.put("data",list);

        return vo;

    }

    @Override
    public Vo put(Object key, Object value) {
        super.put(key, value);
        return this;
    }

}
